Objekte 2: Zellen und Zellbereiche
Bereiche aus mehreren Zellen
Nicht die einzelne Zelle, sondern der Zellbereich ist das kleinste Objekt in einem Tabellenblatt (obwohl natürlich ein Zellbereich auch nur eine Zelle enthalten kann). Dieses Bereichs-Objekt hat wieder eine Reihe erfrag- und setzbarer Eigenschaften:
Abbildung 21: Die wichtigsten Eigenschaften eines Zellbereiches.
Das Schriftart-Objekt eines Bereiches wird über die Schriftart-Eigenschaft eines Bereichs-Objektes definiert und dann über die folgenden Eigenschaften näher definiert:
Abbildung 22: Eigenschaften des Schriftart-Objektes.
Weiters können Zellbereiche mit Rahmen (innen wie außen) versehen werden. Das Rahmen-Objekt wird mit Hilfe der "RahmenListe"-Methode des Bereichs-Objektes erfragt und dann über die folgenden Eigenschaften formatiert:
Abbildung 23: Eigenschaften des Rahmen-Objektes.
Schließlich ist auch der Innenbereich jeder Zelle eines Bereiches veränderbar. Das Innenbereichs-Objekt wird über die Innenbereich-Eigenschaft des Bereichs-Objektes ermittelt und dann mit den folgenden Eigenschaften in seinem Aussehen definiert:
Abbildung 24: Eigenschaften des Innenbereichs eines Zellbereiches.
Schließlich kann auch der ganze Bereich manipuliert werden.
Abbildung 25: Informationen über einen Bereich; Änderung des
Bereichs - dazu dienen diese Methoden.
Sonderfall: Bereich umfaßt nur eine Zelle
Ein solcher Bereich hat zusätzliche Eigenschaften:
Abbildung 26: Eigenschaften von Zellbereichen, die aus einer
einzelnen Zelle bestehen.
Jede Zelle eines EXCEL-Arbeitsblattes kann auf vielfältige Weise beschrieben werden:
Diese Informationen über eine Zelle werden "Eigenschaften" genannt.
Die Eigenschaften einer Zelle können durch VBA verändert werden:
Auch mit "Methoden" kann eine Zelle bearbeitet werden:
Eine besondere Zelle ist die, in der der Cursor steht-sie ist die "aktive Zelle" und kann auch so angesprochen werden, als "ActiveCell".
Wie kommen wir zur Zelle B5 des Arbeitsblattes "Tabelle1"?
Jede Zelle eines Tabellenblattes ist Teil eines Objektes-eines "Bereichs-Objektes". Das Bereichs-Objekt (englisch "Range") wieder ist in "Container-Objekten" eingebettet-Tabellenblatt, Arbeitsmappe, Anwendung, also EXCEL 5.0. Je "näher" wir dem Bereichs-Objekt sind, um so einfacher können wir es ansprechen:
Ist das Tabellenblatt "Tabelle1" aktiv (es ist im aktiven Fenster sichtbar), dann genügen Zellreferenz und "Select"-Methode:
[B5].Select Cells(5, 2).Select
um diese Zelle zur aktiven Zelle zu machen. (Nach dem Ende des VBA-Programmes, das diesen Befehl enthält, würde diese Zelle mit dem Cursor-Rahmen versehen sein.)
Ist ein anderes Blatt als "Tabelle1" sichtbar, dann müssen Sie bei der Zellauswahl auch den Blattnamen angeben:
[Tabelle1!B5].Select worksheets("Tabelle1").Cells(5, 2).Select
Ist sogar eine andere Arbeitsmappe aktiv, dann müssen Sie zunächst die Mappe aktivieren, in der "Tabelle1" enthalten ist:
Workbooks("Tutor1.xls").Activate [Tabelle1!B5].Select
Da unter VBA eine Zelle eine "Range" ("Bereich") ist, können wir auch schreiben:
Range("B5").Select Worksheets("Tabelle4").Range("B5").Select Workbooks("Tutor1.XLS").Activate Worksheets("Tabelle4").Range("B5").Select
Eigenschaften von Zelle B5 setzen und erfragen
[A1]-FORMAT
[B5].Select [B5].Value = "Test" [B5].Font.Size = 14 [B5].Font.Bold = Wahr MsgBox "Schriftart in Zelle B5 ist: " + _ [B5].Font.Name MsgBox "Inhalt von Zelle B5 ist: " + _ [B5].Value
ALS BEREICHS-OBJEKT
Range("B5").Value = "Test2" Range("B5").Font.Size = 12 Range("B5").Font.Bold = False "Schriftart in Zelle B5 ist: " + _ Range("B5").Font.Name MsgBox "Inhalt von Zelle B5 ist: " + _ Range("B5").Value
Eigenschaften mehrerer Zellen setzen und erfragen
[A1]-FORMAT
[A1].Select [A3:B6].Value = "Test" [A3:B6].Font.Size = 14 [A3:B6].Font.Bold = True
Beim Erfragen von Eigenschaften mehrerer Zellen ist Vorsicht geboten. Bei der Schriftart geht das noch-falls jede Zelle die selbe Schriftart hat. Bei der Eigenschaft "Value" streikt EXCEL und gibt eine Fehlermeldung aus.
ALS BEREICHS-OBJEKT
Folgende Arbeitsschritte sind dabei zu setzen:
Bereich definieren Bleiben wir wieder bei unserem Bereich, den Zellen A3 bis B6 in "Tabelle2". Wir schreiben diesfalls
Sub Hauptprogramm_31() Set MeinBereich = ActiveWorkbook.Sheets("Tabelle2").Range("A3:B6") MsgBox MeinBereich.Address(external:= True) End Sub
lassen das VBA-Programm laufen und erhalten im Meldungsdialog die Zelladresse.
Bereich mit Wert belegen Dazu müssen wir den Zellen des Bereiches den Wert zuweisen (Objekt-Gurus würden sagen: "Die Wert-Eigenschaft des Bereichs-Objektes setzen".)
Sub Hauptprogramm_32() Set MeinBereich = ActiveWorkbook.Sheets("Tabelle2").Range("A3:B6") MeinBereich.Value = 12 End Sub
Werte aus allen Zellen des Bereiches auslesen Dies geht am einfachsten so, daß wir aus jeder einzelnen Zelle des Bereiches ein Objekt bilden, dessen Wert wir erfragen und anzeigen.
Sub Hauptprogramm_33() Set Meinbereich = ActiveWorkbook.Sheets("Tabelle2").Range("A3:B6") For Each EineZelle In Meinbereich.Cells MsgBox EineZelle.Address MsgBox EineZelle.Value Next End Sub
Copyright © by JOANNEUM RESEARCH Forschungsgesellschaft mbH |